package com.file.homework;

import java.io.File;

/**
 * @author げっしょく
 * @date 2021/7/31
 */
public class Demo3 {
    //用来统计文件大小的数
    static long count;
    public static void main(String[] args) {

    /*
    3. 已知File类中存在一个方法 long length() 可以获取文件的大小，
    但是不能直接获取文件夹的大小
现要求：定义方法接收一个文件夹的File对象，获取文件夹的实际大小
（提示：将文件夹中所有的文件大小加起来就是整个文件夹的大小）
     */
            File file = new File("D:\\Git");
            printlength(file );
            //打印出文件的大小
            System.out.println(count);
        }

    /**
     * 是用来统计文件的大小
     * @param file   统计内容大小的文件
     * @return      返回的是这个文件的大小按字节来算
     */
    private static void printlength(File file )  {
        File[] files = file.listFiles();
        //判断是否为空
        if(files != null){
            for (File file1 : files) {
                //判断是否是文件
                //是文件就直接算出其大小进行累加
                if (file1.isFile()){
                    count += file1.length();
                }else{
                    //文件夹就接着调用本身，进入文件夹进行遍历
                    printlength(file1 );
                }
            }
        }
    }

}

